#pragma once

#include <allegro5/allegro.h>
#include <string>
#include <list>
#include "Vector.hpp"

class Projectile
{
private:
	static std::string						_filename;
	static std::shared_ptr<ALLEGRO_BITMAP>	_image;

	Vector	_position;
	Vector	_forward;
	float	_velocity;

public:
	static std::list<Projectile> all_projectiles;

	Projectile(const Vector& position, const Vector& direction, const float velocity);

	Vector GetPosition() const;

	void Update(float dt);
	static void UpdateAllProjectiles(float dt);

	void Draw() const;
	static void DrawAllProjectiles();

	static void CleanUpProjectiles();
};